package com.easymall.dao;

import com.easymall.domain.User;

import java.sql.SQLException;

/**
 * com.easymall.domain.User 对应的Dao层
 */
public interface UserDao {

    /**
     * 初始化生命周期函数
     */
    void init();

    /**
     * 提供用户的id查询对应用户数据
     * @param id 用户的id号
     * @return User对象
     * @throws SQLException 数据库查询失败
     */
    User getUserById(int id) throws SQLException;

    /**
     * 提供用户名查询对应用户数据
     * @param username 用户名
     * @return User对象
     * @throws SQLException 数据库查询失败
     */
    User getUserByUsername(String username) throws SQLException;

    /**
     * 提供用户名和密码查询应对用户数据
     * @param username 用户名
     * @param password 用户密码
     * @return User对象
     * @throws SQLException 数据库查询失败
     */
    User getUserByUsernameAndPassword(String username, String password) throws SQLException;

    /**
     * 将用户数据写入数据库
     * @param user  封装了用户数据的User对象
     * @return  true-写入数据库成功  false-写入数据库失败
     * @throws SQLException 数据库查询失败
     */
    boolean saveUser(User user) throws SQLException;

    // /**
    //  * 更新用户数据
    //  * @param user  封装了用户数据的User对象
    //  * @return  true-更新成功  false-更新失败
    //  * @throws SQLException 数据库查询失败
    //  */
    // boolean updateUser(User user) throws SQLException;

}
